package cn.kent.abstractFactoryPattern;

/**
 * 编写一个抽象类，根据enum创建出一个人类出来
 *
 * @author kent
 * @date 2021/5/11 17:58
 */
public abstract class AbstractHumanFactory implements HumanFactory {

    protected Human createHuman(HumanEnum humanEnum) {
        Human human = null;
        /**
         * 如果传递过来的不是一个enum中的值则不处理，
         */
        if (!humanEnum.getValue().equals("")) {
            try {
                // 直接产生一个实例
                human = (Human) Class.forName(humanEnum.getValue()).newInstance();
            } catch (Exception e) {
                // 因为使用了enum，这个情况不会出现了，除非是enum有问题
                e.printStackTrace();
            }
        }
        return human;
    }
}
